Generation of product recommendations using a dynamically selected strategy

ABSTRACT

Techniques are described for dynamically generating recommendations for users, such as for products and other items. In at least some situations, the techniques include using multiple recommendation strategies, such as by aggregating recommendation results from multiple different recommendation strategies. Such recommendation strategies may have various forms, and may be based at least in part on data regarding prior interactions of numerous users with numerous items. In addition, information about current selections of a particular user may be gathered based at least in part on providing a GUI (“graphical user interface”) for display to the user that includes selectable information about numerous recommended items, and dynamically updating the displayed GUI with newly generated recommendations of items as the user makes selections of particular displayed recommended items (e.g., newly generated recommendations that are similar to the selected items in one or more manners, or are otherwise related to the selected items).

TECHNICAL FIELD

The following disclosure relates generally to dynamically generatingproduct recommendations for users, such as by using multiplerecommendation strategies and various information regarding prior userinteractions with products.

BACKGROUND

In addition to providing access to information, the World Wide Web (alsoreferred to as the “Web”) has increasingly become a medium that is usedto search for, shop for and order items (such as products, servicesand/or information) that are available for purchase, rent, lease,license, trade, evaluation, sampling, subscription to, etc. In manycircumstances, a user may visit the Web site of a Web merchant or otheronline retailer that provides one or more items (sometimes referred toas a “Web store”), such as to view information about the items, give aninstruction to place an order for one or more items, and provideinformation needed to complete the purchase (e.g., payment and shippinginformation). After receiving an order for one or more items, the onlineretailer then fulfills the order by providing the ordered items to theindicated recipient, such as by delivering product items electronically(e.g., music downloaded over the Internet) and/or through physicaldistribution channels (e.g., shipment via a governmental postal serviceor private common carrier, such as for paperback books). Similarly, someservice items may be provided electronically (e.g., providing emailservice), while others may be provided physically (e.g., performingcleaning services at the purchaser's house).

While access to information about items via the Web provides manybenefits, various problems also exist. As one example, given the largenumbers of items that may be available from various online retailers, itcan be difficult for a user to identify particular items that may be ofinterest. In addition, while various approaches to automaticallygenerating recommendations for users have been tried, such generatedrecommendations have various problems, including that any given approachto generating recommendations is typically useful only in certainlimited situations, if at all.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a network diagram illustrating an embodiment of amulti-strategy product recommendation service for dynamically generatingproduct recommendations for users.

FIGS. 2A-2D illustrate examples of dynamically generating and providingproduct recommendations to users.

FIG. 3 is a block diagram illustrating example computing systemssuitable for executing a multi-strategy product recommendation systemfor dynamically generating product recommendations for users.

FIG. 4 is a flow diagram of an example embodiment of a User InterfaceManager routine.

FIGS. 5A-5B are a flow diagram of an example embodiment of aRecommendation Manager routine.

FIG. 6 is a flow diagram of an example embodiment of a Client DeviceDisplay routine.

DETAILED DESCRIPTION

Techniques are described for dynamically generating recommendations forusers, such as for products and other items. In at least someembodiments, the techniques include using multiple recommendationstrategies in one or more of various ways, such as by aggregatingrecommendation results for a particular user and a particular situationfrom multiple different recommendation strategies. Such recommendationstrategies may have various forms, and in some embodiments may be basedat least in part on data regarding prior interactions of numerous userswith numerous items. In addition, in at least some embodiments,information about current selections of a particular user may begathered based at least in part on providing a GUI (“graphical userinterface”) for display to the user that includes selectable informationabout numerous recommended items, and dynamically updating the displayedGUI with newly generated recommendations of items as the user makesselections of particular displayed recommended items (e.g., newlygenerated recommendations that are similar to the selected items in oneor more manners, or are otherwise related to the selected items).Additional details related to particular recommendation strategies, toaggregating and otherwise using multiple recommendation strategies, andto interacting with users via a displayed GUI in various manners areincluded below. In addition, at least some of the described techniquesmay be automatically performed in at least some embodiments by acomputer-implemented Multi-Strategy Product Recommendation (“MSPR”)service, as described in greater detail below.

As noted above, the recommendation strategies that may be used may havevarious forms in various embodiments, and in some embodiments may bebased at least in part on data regarding prior interactions of numeroususers with numerous items. For example, in at least some embodiments,the prior interactions of users with items may involve interactions ofcustomers of one or more retailers related to products or other itemsthat are available from those retailers, or instead may involveinteractions of other types of users in other situations (e.g., userswho perform searches with search engines, users who view informationabout products from a product review service, etc.). A non-exclusivelist of types of interactions of customers of online or other retailerswith items for which interaction data is gathered may include, forexample, the following: performing searches (e.g., for particular items,for items of a particular category or other defined group of items, foritems having one or more indicated attributes, etc.); browsing itemcategories; viewing detailed information about particular items;purchasing items; doing item returns; etc. The interaction data aboutthe prior user interactions with items may then be analyzed andsummarized in various ways, such as, for example, in the followingnon-exclusive manners: to identify items that are popular (e.g., the topitem sellers in a particular category or from a particular retailerduring a particular period of time; the items that are most oftenselected by users, such as to view detailed information about the items;the items with the highest user ratings; the items most often includedin results of users' searches and/or selected by users from such searchresults; the “hottest” items of an item group to reflect those itemshaving the largest changes in their ratings or sales or other popularitymeasure during a particular period of time; etc.); to identify itemsthat are similar to each other or otherwise related to each other (e.g.,items that have similar or otherwise related items attributes, such asprice, type, size, etc.; users who viewed this item are most likely toalso view these other items; users who viewed this item are most likelyto purchase these items; users who purchased this item are most likelyto also purchase these other items; users who searched for this itemattribute and/or browsed this item category are most likely to viewand/or purchase these items or items with these attributes or items inthese categories; etc.); to identify items that are popular among userssimilar to a user for whom recommendations are being made (e.g., userswith similar demographics; users in the same or nearby geographicregions, etc.); to identify items that have been explicitly associatedwith one another, such as by a retailer, an advertiser, a manufacturer,and/or another user (e.g., “buy together” items); to identify items thatare similar or otherwise related to items interacted with by aparticular user, such as a user to whom recommendations are to beprovided (e.g., interactions related to items purchased by the user,items viewed by the user, items added to a shopping cart of the user,etc.); etc. Some or all of the various types of analyzed or summarizeduser interaction data may then each be used as a distinct recommendationstrategy, such as to use information about top item sellers in aparticular category as one recommendation strategy when a user interestin that category is indicated or suspected, to use information aboutusers who viewed a particular item as being most likely to purchaseother identified items as one recommendation strategy when a userinterest in that particular item is indicated or suspected, etc.Additional details related to particular recommendation strategies areincluded below.

In addition, as previously noted, multiple recommendation strategies maybe used in various ways in various embodiments. For example, in someembodiments and situations, recommendation results from multipleavailable recommendation strategies may be gathered for a particularsituation involving a particular user, and then those variousrecommendation results may be aggregated in various manners. As oneexample of aggregating various recommendation results from multiplerecommendation strategies, the various recommendation results may beweighted or otherwise ranked, so as to determine relevance scores orother relevance levels for those recommendation results, and then someor all of those various recommendation results may be selected to beused as recommendations for that user based on those weightings or otherrankings. The weighting or other ranking of various item recommendationresults may be performed in various manners, such as based on aweighting or ranking provided by a particular recommendation strategythat recommended the item (e.g., with a top sellers recommendationstrategy weighting the highest item seller as the top recommendation forthat strategy, and progressively weighting lower sellers as lowerrecommendations), based on inclusion of a particular item recommendationin the results from multiple different recommendation strategies, etc.In other embodiments, relevance scores or other levels may be determinedfor particular recommended items in manners other than based onweighting or other ranking. In addition, in other embodiments, aparticular one of multiple available recommendation strategies mayinstead be selected for use in a particular situation, such as based ona dynamic determination that the particular recommendation strategy isoptimal or otherwise preferred for the particular situation, or insteadbased on a prior selection or configuration to use that particularrecommendation strategy in that particular situation (e.g., based onprior configuration by a human operator, based on a prior automatedselection of that particular recommendation strategy, etc.). A dynamicdetermination to use a particular recommendation strategy at a giventime based on a current situation may be based on, for example, acomparison of the results from the recommendations of that particularrecommendation strategy to recommendation results from one or more otherpossible recommendation strategies, a failure or other inability ofother possible recommendation strategies to provide usefulrecommendation results or any recommendation results, etc. Additionaldetails related to using multiple recommendation strategies are includedbelow.

Furthermore, as previously noted, information about current selectionsof a particular user may be gathered in at least some embodiments basedat least in part on providing a GUI for display to the user thatincludes selectable information about numerous recommended items. Forexample, a Web page may be generated and displayed to a user thatincludes images of and/or other indications of numerous items, such asfor an initial group of recommended items, and with the images or otherdisplayed indications of the items being selectable by the user. If theuser makes a current selection of one of the recommended items, a secondgroup of recommended items may be dynamically generated for the userbased at least in part on the current selection, and then displayed tothe user via the GUI, such as for a second group that includes some orall of the items of the first group (and optionally additional items),or instead a second group that does not include any of the items of thefirst group. Similarly, if the user makes a second current selection ofone of the recommended items of the second group, a third group ofrecommended items may similarly be dynamically generated for the userbased at least in part on the current selection(s), and then displayedto the user via the GUI. Such user selections may continue to berepeatedly monitored and used in this manner as part of an ongoinginteractive recommendation exploration session, and in some embodimentsother types of user selections may similarly be used (e.g., a userselection to remove one or more currently selected items from the groupof current selection, also referred to as a “de-selection”; other userfeedback of a positive or negative nature regarding one or morecurrently selected items or other items; etc.). Non-limiting examples ofportions of one such GUI are illustrated with respect to FIGS. 2A-2D. Inaddition, as previously noted, the recommendation results from one ormore recommendation strategies may be weighted or otherwise ranked insome embodiments, and if so the recommended items that are displayed toa user via the GUI may be displayed so that items with higher rankingsare displayed more prominently than other items with lower rankings(e.g., by displaying the items in decreasing order of their associatedrankings, such that the items with the highest rankings are displayedfirst; by using different fonts, colors, placement or other visualindications to indicate items with higher rankings; etc.). Thus, forexample, if the display of a second group of recommended items replacesa prior display of a first group of recommended items, and the secondgroup includes at least some of the items of the first group, theweighting of those items from the first group may change in the secondgroup, and thus the prominence of the display of those items from thefirst group may similarly change in the display of those items as partof the second group. Furthermore, in at least some embodiments, thedisplay of a second group of recommended items that replaces a priordisplay of a first group of recommended items may be performed invarious manners, including to modify a previously displayed Web pagewithout reloading the Web page in a client browser application (e.g.,via the use of AJAX, or Asynchronous JavaScript and XML, or otherscripting or instructions or execution mechanisms included as part ofthe previously displayed Web page). Additional details related todisplaying GUIs and recommended items to users are included below.

FIG. 1 is a network diagram illustrating an embodiment of amulti-strategy product recommendation service for dynamically generatingproduct recommendations for users using the described techniques. Withrespect to at least some embodiments below, the discussion may refer torecommending “products” to users, but it will be appreciated that thesame or similar techniques may be applied to other types of items inother embodiments.

In particular, the illustrated example of FIG. 1 includes a number ofexample users 140 that are each interacting with an example embodimentof a Multi-Strategy Product Recommendation (“MSPR”) service 105 and/orwith an example retailer 130 (e.g., an online retailer) over a network100. The network 100 may, for example, be a publicly accessible networkof linked networks, possibly operated by various distinct parties, suchas the Internet. In other embodiments, the network 100 may be a privatenetwork, such as, for example, a corporate or university network that iswholly or partially inaccessible to non-privileged users. In still otherembodiments, the network 100 may include both private and publicnetworks with one or more of the private networks having access toand/or from one or more of the public networks. Furthermore, the network100 may include various types of wired and/or wireless networks invarious situations. In this illustrated example of FIG. 1, the users 140may each use computing systems and/or devices (not shown) to interactwith the MSPR service 105 and/or the retailer 130 to obtain variousdescribed functionality via the network 100, and in doing so may providevarious types of indications or other information to the MSPR service105 and/or the retailer 130. The interactions of the users with the MSPRservice 105 and/or the retailer 130 may occur in various ways in variousembodiments, such as, for example, in an interactive manner via a GUIdisplayed on computing systems and/or other devices (not shown) of theusers 140, or in a programmatic manner via an API (“applicationprogramming interface”) provided by the MSPR service 105 and/or theretailer 130 that allows computing systems and/or programs to invokesuch functionality programmatically, such as using Web services or othernetwork communication protocols.

In this illustrated example, each of the users 140 may interact with anembodiment of the MSPR service 105 to obtain recommendations forproducts available from a retailer 130, such as to obtain dynamicallygenerated product recommendations for the user in particular situations.In this illustrated example, the MSPR service 105 includes or otherwisehas access to various product information 120 and user interactioninformation 115. The product information 120 may, for example, include adatabase and/or other data collection related to a catalog of productsand/or services available from one or more retailers 130, such as mayinclude descriptions, prices, availability and other information aboutthe products and/or services. The user interaction information 115 may,for example, include information regarding how numerous of the users 140and/or other users have previously interacted in various ways withproducts included in product information 120. As part of recommendingproducts for a particular one of the users 140, the illustrated MSPRservice 105 may process the product information 120 using variousrecommendation strategies to identify or otherwise determine whichproducts of the numerous products available from the retailer 130 torecommend to the particular user, such as by identifying the productsthat are determined to be most relevant to the user based on the variousrecommendation strategies and the currently available information. Insome embodiments, at least some of the recommendation strategies may usethe user interaction information 115 to determine which products torecommend to a particular user, such as to identify products that arepopular, to identify products that are similar to or otherwise relatedto one or more other products currently selected by the user orotherwise determined to be of current interest to the user, and/or tootherwise likely to be of interest to a particular user based at leastin part on prior interactions of multiple users. As previously noted, insome embodiments, the MSPR service 105 may generate productrecommendations for users based at least in part on aggregating resultsof multiple recommendation strategies, such as discussed in more detailelsewhere.

The illustrated embodiment of MSPR service 105 may provide for each ofthe interacting users 140 a GUI that displays multiple recommendedproducts to the user and allows the user to interactively select orotherwise indicate an interest in one or more of the displayedrecommended products, with the MSPR service 105 providing new and/orrevised product recommendations to display to the user in the providedGUI using one or more recommendation strategies as the user indicates aninterest in the recommended products. For example, in some embodiments,a user may interact with a GUI provided by the MSPR service 105 tosuccessively indicate interest in one or more displayed recommendedproducts, with a new group of recommended products being generated andprovided for display to the user based upon each successive indication.In some such embodiments, the successive indications of interest of theuser may be collected and/or otherwise compiled by the GUI such that thenew group of recommended products may be generated using one or morerecommendation strategies based at least in part on the collectedsuccessive indications of the user's interest. For example, in someembodiments, each of the collected successive indications of interest ofa user may be used to determine a respective set of productrecommendations for the user based on the indication, with the new groupof product recommendations being an aggregation of results of eachgenerated respective set of product recommendations.

In various embodiments, the GUI provided by the MSPR service 105 mayenable a user to indicate an interest in one or more displayedrecommended products in various ways, such as by providing one or moreuser-selectable controls that allow users to select a displayedrecommended product, de-select a previously selected product, reject adisplayed recommended product, and/or otherwise provide feedback of apositive or negative nature for a displayed recommended product (e.g.,based on providing user ratings or rankings). After the user interactsto indicate an interest in one or more recommended products, theindications of interest of the user may be provided to the MSPR service105, such that the MSPR service 105 may use the indications as part ofone or more recommendation strategies to identify products of theproduct information 120 that may be of interest to the particular user.For example, the MSPR service 105 may use such received indications ofinterest to identify products of a similar nature or kind to theselected recommended products and/or to identify products that areotherwise related to or associated with the selected recommendedproducts (e.g., such as to reflect relationships determined based onprior user interactions with the products on the part of the user towhom recommendations are currently being provided and/or on the part ofother users; relationships explicitly specified by a manufacturer,retailer, advertiser, or user(s); etc.). As such, each of the users 140may interact with the MSPR service 105 via an embodiment of the providedGUI to obtain recommendations for products that are available from theretailer 130 and are of particular interest to the user. For example, anexample user 1 140 a may interact with MSPR service 105 via the providedGUI (displayed on a client computing system or device of the user 1) toindicate one or more recommended products that are of interest to theuser 1 and to obtain product recommendations based on user 1'sparticular indications of interest, while a distinct example user 2 140b may interact with the MSPR service 105 via the provided GUI (displayedon a distinct client computing system or device of the user 2) toindicate one or more other recommended products that are of interest tothe user 2 and to obtain other product recommendations based on theindications of interest of the user 2.

In various embodiments, the MSPR service GUI may be presented in variousmanners and may provide various types of additional and/or otherinteractivity and functionality for the users 140, with at least oneillustrative example embodiment of such a GUI being described withrespect to FIGS. 2A-2D. In at least one embodiment, the GUI of the MSPRservice 105 may be provided in the form of one or more Web pages thatare generated by the MSPR service 105, which may be obtained by variousof the users 140 via the network 100, such as for display in a Webbrowser executing on one or more client computing systems and/or devicesof the various users 140.

In some embodiments, each of the users 140 may interact with the MSPRservice 105 to obtain product recommendations for one or more particularsubgroups of the products available from the retailer 140, such thatproduct recommendations generated by the MSPR service 105 may be limitedto products that are included in the one or more particular subgroups.For example, such subgroups may include products that are grouped invarious manners, such as to reflect products of a particular categoryand/or type (e.g., clothing, jewelry, books, tools, etc.), productsavailable in a particular department of a retailer (e.g., sportinggoods, jewelry, home furnishings, women's clothing, men's shoes, etc.),products that may be grouped on the basis of various other attributes ofthe products, etc. In some such embodiments, the GUI provided by theMSPR service 105 may include various user-selectable controls (e.g.,menu options, drop-down lists, buttons, hyperlinks, check-boxes, radiobuttons, text fields, search fields, etc.) that enable a user tointeractively specify one or more particular subgroups, such as one ormore controls that enable the user to select and/or otherwise indicateone or more particular categories, departments, item attributes, orother criteria by which to limit the product recommendations. In atleast one embodiment, the GUI may provide functionality that enables auser to specify one or more search terms which may be used to define aparticular subgroup of products, such as a subgroup of products thatincludes products of the retailer 130 that matches one or more of thespecified search terms.

The example retailer 130 may include one or more retailer businessesthat sell or otherwise make products or other items available tocustomers or potential customers, such as via a Web site (e.g., a Webstore) or other network-based service hosted on one or more servercomputing systems. For example, the users 140 may access a Web site ofthe retailer 130 to obtain one or more Web pages, such as to viewinformation about, search for, browse for, rate, place an order for,and/or provide information for completing a purchase of or a return ofone or more products or other items available from the retailer 130. Inat least some such embodiments, information about various of theinteractions of the users 140 with the Web site of the retailer 130 maybe collected and included as part of the user interaction information115, such as interactions of the users that are related to the productsor other items made available by the retailer 130 on the Web site (e.g.,product views, purchases, returns, ratings). In addition, in someembodiments, the retailer 130 may also make products or other itemsavailable for customers at one or more physical retail locations (i.e.,“brick and mortar” stores), whether in addition to or instead of via aWeb store or other network-based service, and if so informationregarding purchases, returns, and/or other activities of customersrelated to the products or other items available at the physical retaillocations may also be collected for inclusion as part of the userinteraction information 115. In addition, in some embodiments, the user140 may be at a physical retail location and interacting with a GUI on adevice at the physical retail location (e.g., a fixed-location kioskprovided by the retailer 130, a mobile wireless device belonging to theuser or the retailer, etc.) in order to view and interact withrecommendations from the MSPR service 105, as well as productinformation and related content from the retailer 130.

In some embodiments, the MSPR service 105 may be included as part of aWeb site of a particular retailer 130, such as to provide the describedfunctionality for dynamically recommending products of the retailer 130to users of the Web site. For example, in some such embodiments, the GUIof the MSPR service 105 may be provided as one or more Web pages of theWeb site, or as an embedded Web application included in one or more ofvarious Web pages of the Web site. In some such embodiments, the users140 may initiate access with the MSPR service 105 via the Web site ofthe retailer 130 in various ways to obtain an initial generated group ofselectable product recommendations. For example, in some embodiments,the user may select one or more products available on the Web site(e.g., from a product page, a product listing, a search results list,etc.), with an initial generated group of product recommendations beingrelated to the one or more selected products; the user may indicate adesire to browse a group of recommended products of a particular typeand/or category, with the initial generated group of productrecommendations being products of that particular type or category; theuser may enter one or more search terms for recommended products, withthe initial group of recommended products being products that match oneor more of the search terms; etc.

In addition, in some embodiments, the MSPR service 105 may provideproduct recommendations for products available from multiple retailers130. For example, in some such embodiments, the MSPR service 105 mayobtain product information 120 from multiple retailers 130 and/or useuser interaction information 115 based on how prior customers of themultiple retailers interacted with products provided by the multipleretailers. In some such embodiments, the MSPR service 105 may or may notbe affiliated with one or more of the multiple retailers.

For illustrative purposes, some embodiments are described below in whichspecific types of recommendation strategies are combined and otherwiseused in specific manners to provide users with specific types ofrecommendations for specific types of products in specific types ofsituations. These examples are provided for illustrative purposes andare simplified for the sake of brevity, and the inventive techniques maybe used in a wide variety of other situations, some of which arediscussed below, with the techniques not being limited to use withparticular types of products or more generally with particular types ofitems, particular types of user interfaces or other mechanisms forinteracting with users or otherwise using generated productrecommendations, etc. For example, in some embodiments, the describedtechniques may be used to provide recommendations of entities (e.g.,people, businesses or other organizations, etc.) or other things otherthan products or other items, may be used to generate recommendationsfor users without interacting with those users (e.g., by interactingwith one or more other services or organizations that directly interactwith those users), may be used to generate recommendations to beprovided to entities other than users (e.g., organizations or othergroups), etc.

FIGS. 2A-2D illustrate examples of dynamically generating and providingproduct or other item recommendations to users. In particular, FIGS.2A-2D illustrate examples of a GUI that may be provided by someembodiments of the MSPR service 105 of FIG. 1 as part of dynamicallygenerating recommendations for users in accordance with various of thedescribed techniques. In the illustrated example of FIGS. 2A-2D, the GUIdisplays user-selectable information about numerous recommended productsor other items available from one or more retailers, and dynamicallyupdates the display with newly generated recommendations for products orother items as the user makes successive selections of particulardisplayed recommended products or other items, such as during an ongoinginteractive recommendation exploration session.

In the example of FIG. 2A, an example interactive display 200 isillustrated that includes user-selectable information related tomultiple recommended products or other items available from an exampleretailer. The display 200 includes a selected item area 205, which inthis example initially displays a user instruction 207 to the user. Thedisplay 200 also includes multiple item images displayed in arecommended item area 270 (shown surrounded in bold for referencepurposes), with each of the item images corresponding to a distinctproduct or other item recommended for the user by an embodiment of theMSPR service (not shown). In this example, each of the displayed itemimages in the recommended item area 270 is selectable by the user, suchthat the user may select a displayed image of a particular recommendeditem to indicate an interest in other items that are similar to orotherwise related in various ways to the selected recommended item. Forexample, a user may select one of the item images displayed in therecommended item area 270 by “clicking on” the item image (e.g., using amouse or other pointing device), or by otherwise interacting with thedisplay 200 in such a manner to indicate a selection of the item image(e.g., using a moveable highlight, voice commands, a touch screen,etc.).

In the example display 200, the multiple item images are presented in agrid-like manner, with each item image being displayed in a particulargrid location of the recommended item area 270, such as by being part ofone of multiple illustrated rows 272 a-272 d and one of multipleillustrated columns 270 a-270 d, although the row and column indicationsare not displayed to the user in this example. To facilitate discussionof particular grid locations corresponding to a particular row and aparticular column position, such grid locations may be abbreviated in[row]:[column] form in the following discussion—for example, the gridlocation at row 272 a and column 270 a (corresponding in this example toan image of item 1) may be abbreviated using such a form as 272 a:270 a.While the recommended item area 270 is illustrated as displaying afour-by-four grid of item images in this example, it will be appreciatedthat other types of displays are possible in other embodiments. Forexample, in some embodiments, more or fewer rows or columns may beincluded in the grid, with at least one embodiment having five rows andnine columns; while in other embodiments, item images may be presentedin other manners not limited to grids (e.g., a list). In addition, inother embodiments, other information corresponding to the recommendeditems may be provided in the recommended item area 270, such as inaddition to or instead of item images, including other visualrepresentations of items (e.g., icons), item names, item descriptions,item prices, etc. Furthermore, in some embodiments, the various itemimages, icons, and/or descriptions may be illustrated in a non-uniformmanner, such as with at least some more relevant items having higherassociated relevance scores being displayed in a larger form than atleast some less relevant items, such as to increase the prominence ofthe more relevant items.

In this illustrated embodiment, the item images displayed in therecommended item area 270 are presented in a particular order accordingto associated relevance scores of the corresponding recommended items(e.g., relevance scores determined for the recommend items based on oneor more recommendation strategies used to identify the recommendeditems), although the particular associated relevance scores are notshown. For example, in this embodiment, item images corresponding torecommended items with higher scores are displayed more prominently thanitem images corresponding to recommended items with lower scores bybeing placed in a higher row (e.g., item images displayed in row 272 ahave relevance scores higher than and/or equal to item images displayedin row 272 b, which have relevance scores higher than and/or equal toitem images displayed in row 272 c, and so on). In addition, within eachrow, an item image corresponding to a recommended item with a higherscore is displayed more prominently than item images corresponding torecommended items having lower and/or equal relevance scores by beingplaced in a column farther left (e.g., within a particular row, the itemimage displayed in column 270 a has a relevance score higher than orequal to the item image displayed in column 270 b, which has a relevancescore higher than or equal to the item image displayed in column 270 c,and so on). As such, in this illustrated example, an item imagecorresponding to a recommended item with a highest determined relevancescore is displayed in the grid location 272 a:270 a, which in thisexample is currently an item 1 image 252. In other embodiments, the itemimages displayed in recommended item area 270 may be ordered in othermanners according to corresponding relevance scores, such as in a seriesof spirals (e.g., in a manner similar to the arms of a spiral galaxy),with the distance from the center and/or the particular spiral/armindicating one or more types of information about the items (e.g., withthe items closest to the center having the highest associated relevancescores, and with the different spirals/arms optionally corresponding togrouping of items by other attributes); such as in concentric rings ofvarious geometric shapes, with the distance from the center and/or theparticular ring indicating one or more types of information about theitems (e.g., with the rings closest to the center having the items withthe highest associated relevance scores); etc., and more prominent itemsmay be illustrated in manners other than based on display location(e.g., by size of image, use of different fonts, etc.).

As previously noted, in the example of FIG. 2A, the recommended itemarea 270 currently includes multiple item images that are eachassociated with a recommended item determined for the user by the MSPRservice, such as by being part of an initial group of recommendedproducts. Such an initial group of recommended products may be generatedand provided for current display to the user based on the user havinginitiated access to an interactive recommendation exploration sessionprovided by the MSPR service GUI in various manners, such as by havinginteracted with a Web site of a retailer providing such functionality,or by otherwise interacting directly with the MSPR service. For example,the user may have interacted with a Web site of the retailer in such away as to obtain an initial group of recommendations related to aparticular subgroup of one or more products available from the retailer(e.g., one or more particular products selected by the user on theretailer's Web site; a group of recommended products of a particulartype and/or category that the user selects to browse; one or moreproducts that are the result of a search by the user; etc), while inother embodiments, the user may have interacted with the Web site of theretailer to obtain an initial group of recommendations that are notlimited to a particular subgroup (e.g., such as to obtainrecommendations for products that are generally available from theretailer, such as the top sellers of the retailer). One or more ofvarious recommendation strategies may be used in various embodiments toidentify or otherwise determine an initial group of productrecommendations from products available from the retailer, whetherapplied to a particular subgroup of one or more products or moregenerally to all products available from the retailer, with at leastsome of the identified recommended items of the initial group beingprovided for display to the user. At least some of the variousrecommendation strategies that may be used are described in more detailbelow, and the one or more recommendation strategies used to determinethe initial group may be selected for such use in various ways, such asby using one or more pre-selected or configured recommendationstrategies in a particular situation and/or by dynamically determiningone or more strategies to use in a particular situation. In addition, inat least some embodiments, one or more initial recommendation strategiesmay be chosen for recommending products for a particular user based onvarious preferences of the particular user (e.g., such as preferences touse one or more recommendation strategies) and/or other informationassociated with the user.

For example, the initial group of product recommendations may begenerated by the MSPR service using various recommendation strategies toidentify products that may be of potential interest to the user, some ofwhich may be based on previous interactions of multiple users withvarious of the products available from the retailer. Such recommendationstrategies may include identifying products that are determined to bepopular based on the interactions of multiple customers of the retailer(or other users), such as to identify products that are frequentlypurchased by (e.g., top selling items), frequently viewed by, frequentlysearched for by, highly rated by, etc., the multiple customers. In someembodiments, recommendation strategies that identify popular items maybe constrained to one or more time periods, such as to identify itemsthat are recently popular, historically popular, popular at varioustimes of the year, etc. As part of identifying products using arecommendation strategy, the MSPR service may also assign a relevancescore to each of the identified items for use in various ways, such asfor determining which items to provide for display to the user (e.g.,the MSPR service may provide items with the highest relevance scores fordisplay to the user), for displaying items to the user in variousmanners according to the relevance scores, for aggregating results ofmultiple recommendation strategies, etc. For example, with respect torecommendation strategies that identify popular items, the correspondingrelevance score of each recommended item may be based at least in parton a level of popularity the items are determined to have (e.g., for topselling items, the relevance score may be based on a number of units ofeach item that have been recently sold to customers, such that itemswith the highest numbers of units sold have the highest relevancescores; for top viewed items, the relevance score may be based on anumber of distinct users who viewed information related to the item;etc.). In other embodiments, the relevance scores may also or instead bebased at least in part on a determined conditional probability that therecommended product will likely be purchased by the user if displayed inthe current context of display 200, etc. The corresponding relevancescores produced by each distinct recommendation strategy may benormalized for comparison to and/or combination with relevance scoresproduced by other distinct recommendation strategies.

For the purposes of illustration, in this example, the user may haveinitiated access to functionality of the MSPR service by selecting tobrowse recommended items in a particular product category (e.g.,products available in a particular department of the retailer), with theinitial group of product recommendations provided for display in therecommended item area 270 being determined using a recommendationstrategy that identifies recent top selling products within thatparticular product category. In this illustrated embodiment, imagesassociated with item 1 through item 16 (displayed in the recommendeditem area 270) correspond to recommended products determined by the MSPRservice using an initial recommendation strategy (e.g., the top sellingitems with the category). Furthermore, a corresponding relevance scorehas been determined for each of the recommended products in the initialgroup, such that item images corresponding to the recommended productsmay be appropriately displayed according to such relevance scores in therecommended item area 270, with a recommended product corresponding tothe item 1 image 252 (currently displayed in grid position 272 a:270 a)having a highest relevance score, with a recommended productcorresponding to the item 2 image at grid position 272 a:270 b havingthe next highest relevance score (or a relevance score equal to that ofitem 1), and so on. It will be appreciated that in other embodimentsand/or in other situations, the user may have initiated access tofunctionality of the MSPR service in various other ways, one or moreother or additional recommendation strategies may be used, and/orrelevance scores may be determined in one or more other manners.

At some time after the multiple item images corresponding to the firstgroup of recommended products is displayed to the user in therecommended item area 270 of FIG. 2A, the user interacts with thedisplay 200 to select item 6 image 253 at grid position 272 b:270 b,such as to indicate an interest in item 6 and/or in items related toitem 6, with the results of the selection being illustrated in FIG. 2B.In particular, in the modified display 200 of FIG. 2B, multiple itemimages corresponding to a new second group of products recommended forthe user are currently being displayed in the recommended item area 270,with the second group of recommended products having been generated bythe MSPR service in response to the user selection of item 6.Information related to the selected item 6 is now displayed in theselected item area 205, such as to indicate that item 6 is a currentlyselected product of the user. For example, in this illustrated example,the information related to the selected item 6 includes item 6 image 210and various product information 212 (e.g., product name, description,price), as well as user-selectable control 214 that may be selected bythe user to view additional information related to the item 6 (andoptionally to initiate a purchase of the item 6), and user-selectablecontrol 216 that may be selected by the user to de-select or otherwiseremove the item 6 from being a currently selected item (e.g., if therecommended items of the second group, which are based in part on item 6being a currently selected item, are determined by the user to be lessrelevant than the recommended items of the first group or otherwise tonot be of sufficient interest to the user). In other embodiments, otherinformation and user-selectable controls related to the currentlyselected item may be shown in the selected item area 205, such as toalso have user-selectable controls via which the user may initiate apurchase of the currently selected item, rate or otherwise providefeedback regarding the currently selected item, etc.

In this example, the new group of recommended products may be generatedby aggregating results of the recommendation strategy used to identifythe initial group of recommended products (e.g., recent top sellingitems within a particular category) with results of one or morerecommendation strategies that identify products that are similar to orotherwise related to the currently selected product item 6. In variousembodiments, various recommendation strategies may be used to identifyproducts that are similar to and/or otherwise related to the currentlyselected product, some of which may be based on prior interactions ofmultiple users with the various products of the retailer. For example,in some embodiments, such recommendation strategies may includeidentifying products that have frequently been viewed by users who alsoviewed the currently selected product; identifying products that havefrequently been purchased by users who also viewed the currentlyselected product; identifying products that have frequently beenpurchased by users who also purchased the currently selected product;etc. As previously noted, as part of identifying products using arecommendation strategy, the MSPR service may assign a relevance scoreto each of the identified products. For example, with respect torecommendation strategies for identify products that are similar to orotherwise related to a particular product, the corresponding relevancescore of each recommended item may be based at least in part on adetermination of how similar or otherwise related the products are(e.g., items that have been viewed or purchased more frequently by userswho also viewed or purchased the currently selected item may be assignedhigher relevance scores than items that have been viewed or purchasedless frequently by such users; items that are more likely to be viewedor purchased by users who also viewed or purchased the currentlyselected item may be assigned higher relevance scores than items thatare less likely to be viewed or purchased by such users; etc.). Aspreviously discussed, the corresponding relevance scores may benormalized for comparison to and/or combination with relevance scoresproduced by other recommendation strategies in various manners.

In various embodiments, as part of generating the new group ofrecommended products for display to the user, the results of multiplerecommendation strategies may be aggregated in various ways. Forexample, in some embodiments, the results of each of the distinctrecommendation strategies may be merged, such that the products havingthe highest corresponding relevance scores determined by each distinctrecommendation strategy are selected to be included in the new group ofrecommended products provided for display to the user (e.g., such as ifthe relevance scores are normalized or otherwise comparable to determinewhich are the more or less relevant). In some such embodiments, if theresults of the recommendation strategies include commonly identifiedproducts (e.g., products that were identified by each of therecommendation strategies), then the associated relevance scores of acommonly identified product produced by each distinct recommendationstrategy may be combined (e.g., added together) to produce a newrelevance score for that product (such as a new relevance score for thatproduct that is higher than the individual relevance scores determinedfor that product by each strategy), with the new relevance score beingused to determine which products to provide in the new group ofrecommended products. In addition, in at least some embodiments, therelevance scores produced by a previously used recommendation strategymay be reduced, such as by multiplying the relevance scores produced bythe previously used recommendation strategy by a weighing factor that isless than 1 (“one”), such that the reduced relevance scores have lessinfluence when being aggregated with the results of a more recently usedrecommendation strategy. As one illustrative example, the new group ofproduct recommendations provided for display to the user in theillustrated display 200 of FIG. 2B may be generated based on aggregatingresults of a new recommendation strategy that identifies products thatare related to the currently selected product (item 6) with the resultsof the initial recommendation strategy used to identify the initialgroup of recommended products (e.g., recent top sellers), with theprevious results of the initial recommendation strategy being reduced aspart of the aggregation (e.g., by using a weighting factor).

As previously noted, in the illustrated example of FIG. 2B, as a resultof the user having selected the item 6, a new group of multiple itemimages are currently provided in the recommended item area 270, witheach item image corresponding to products recommended for the user bythe MSPR service. In particular, as a result of the user's selection, anumber of new item images are displayed in the recommended item area 270(e.g., item images corresponding to items 100-110), with each new itemimage corresponding to a recommended item that was newly identified bythe aggregated recommendation strategies, or otherwise determined by theaggregated recommendation strategies to have a sufficiently highrelevance score to be included in the second displayed recommendationgroup. In addition, a number of previously displayed item images fromthe first recommendation group of FIG. 2A (i.e., images for items 11, 5,2, 1 and 13) are currently displayed in the recommended item area 270,with at least some of these item images being displayed in a differentgrid location than they were displayed in FIG. 2A prior to the selectionof item 6, such as based on newly determined relevance scores for atleast some of the recommended items corresponding to such item images aspart of their inclusion in the second group. Conversely, several otheritem images that were previously displayed in FIG. 2A prior to the userselection of item 6 are no longer part of the second recommendationgroup displayed in the recommended item area 270 of FIG. 2B. Forexample, as a result of determining the new second group of recommendedproducts (based on the aggregated recommendation strategies), item 1image 252 that was previously displayed in FIG. 2A as the most relevantitem prior to the selection of item 6 is now displayed in FIG. 2B in aposition of less relevance at grid position 272 c:270 d, whilepreviously displayed item 11 image 250 is now displayed most prominentlyin the grid position 272 a:270 a.

At some time after the multiple item images corresponding to the newsecond group of recommended products is displayed to the user inrecommended item area 270 of FIG. 2B, the user interacts with thedisplay 200 to select item 109 image 254 at grid position 272 d:270 c,such as to indicate an interest in item 109 and/or in items related toitem 109, with the results of the selection being illustrated in FIG.2C. In particular, in the modified display 200 of FIG. 2C, multiple itemimages corresponding to a new third group of products recommended forthe user are currently being displayed in recommended item area 270,with the third group of recommended products having been generated bythe MSPR service in response to the user selection of item 109.Information related to the selected item 109 is now displayed in theselected item area 205, such as to indicate that item 109 is a currentlyselected product of the user, such as along with item 6. For example, inthis illustrated embodiment, the information related to the selecteditem 109 includes item 109 image 220, and various product information222, as well as user-selectable control 224 to obtain additionalinformation related to item 109, and user-selectable control 226 tode-select or otherwise remove the item 109 from being a currentlyselected item. Information related to the item 6 is now being displayedin a new location in the selected item area 205, such as item 6 image230, and user-selectable control 232 to de-select or otherwise removethe item 6 from being a currently selected item. In this example,control 214 and information 212 for item 6 do not have counterpartcontrols and information displayed for item 6 in FIG. 2C, although inother embodiments such controls and information may continue to bedisplayed.

In this example, the new third group of recommended products may begenerated by aggregating results of the recommendation strategy used toidentify the initial group of recommended products (e.g., recent topselling items within a particular category), results of the previouslyused recommendation strategy to identify products that are similar to orotherwise related to the selected item 6, and results of arecommendation strategy that identifies products similar to or otherwiserelated to the selected item 109 (whether the same recommendationstrategy as used for item 6, or a different recommendation strategy).For example, in some embodiments, the relevance scores associated withaggregated results of the prior two recommendation strategies (e.g., theinitial strategy and the strategy used with respect to item 6) as partof the second recommendation group may be reduced (such that relevancescores initially associated with items of the first group may have beenreduced twice), and then combined with results of the recommendationstrategy used to identify products similar to or otherwise related tothe selected item 109, such as in a manner similar to that describedabove. Thus, in this manner, the recommended products of the thirdrecommendation group are in this example based on a combination of thegroup of multiple currently selected items displayed in the selecteditem area 205. In other embodiments, the current item selection andcorresponding determination of recommended items may be performed inother manners, such as to allow only a single currently selected item(e.g., to discard recommended items from the second group related toitem 6 after item 109 is selected), to determine recommendations for agroup of multiple currently selected items in other manners (e.g., togenerate a completely new third group of recommended items that does notexplicitly incorporate any of the recommended items of the second group,but that may be generated based on a combination of the multiplecurrently selected items of the current group; to not reduce the weightsof items recommended based on an earlier selected item of the currentgroup; etc.), etc.

The multiple item images currently provided in the recommended item area270 of FIG. 2C each correspond to a recommended product from the newthird group of products recommended for the user by the MSPR service,with the item images being displayed in accordance with the relevancescores determined for the third group. In particular, a number of newitem images are displayed in the recommended item area 270 (e.g., itemimages corresponding to items 200-209) along with a number of previouslydisplayed item images (e.g., images for items 11, 110, 100, 2, 101 and8). Several of the previously displayed item images are now beingdisplayed in FIG. 2C in different grid positions than prior to the userselection of item 109, and many other of the previously displayed itemimages are no longer displayed in the recommended item area 270, such asbased on newly determined relevance scores of the recommended items forthe third group. In this illustrated example, item 11 image 250 is stilldisplayed in the most prominent grid position 272 a:270 a, such as basedon the corresponding item 11 still having a highest correspondingrelevance score, but previously displayed item 1 image (e.g., item 1image 252 of FIGS. 2A and 2B) is no longer included in the recommendeditem area 270.

FIG. 2D continues the example of FIG. 2C, and in particular illustratesa modified display 200 after the user has de-selected item 6 from theselected item area 205 (such as by interacting with the user control 232in FIG. 2C). As one result of the user having de-selected item 6, theselected item area 205 in FIG. 2D no longer includes information relatedto item 6, although information related to item 109 is still present(e.g., item 109 image 220). In addition, in the example of FIG. 2D, thede-selection of item 6 has initiated the determination of a new fourthgroup of recommended items for the user by the MSPR service.Accordingly, multiple item images corresponding to the new fourth groupof recommended products are currently being displayed in the recommendeditem area 270 of FIG. 2D. For example, in such an embodiment, the newfourth group of recommended products may be generated by aggregatingresults of the recommendation strategy used to identify the initialgroup of recommended products (e.g., recent top selling items in acategory) and the results of the recommendation strategy used toidentify products that are similar to or otherwise related to theselected item 109, but without including the previously usedrecommendation strategy used to identify items that are similar to orotherwise related to item 6. In addition, in some embodiments, after auser de-selects an item, the MSPR service may reduce the relevancescores of items that are determined to be similar to the de-selecteditem, such as to lessen the influence of any such items that may beidentified by the remaining recommendation strategies.

In this illustrated example, each of the multiple item images currentlydisplayed in the recommended item area 270 corresponds to a recommendedproduct from the resulting new fourth group of products recommended forthe user by the MSPR service, with the item images being displayed inaccordance with relevance scores of the corresponding recommendedproducts for the fourth group. In particular, in this example, as aresult of the de-selection, recommended product item 200 has now beendetermined to have a highest relevance score, and as such, thecorresponding item 200 image 256 is now displayed in the position ofhighest prominence in area 270 (in grid position 272 a:270 a).

In other embodiments, various other functionality may be provided by anembodiment of the MSPR service, such as for display in a GUI of the MSPRservice. For example, in some embodiments, a user may interact withvarious information corresponding to a displayed recommended product toprovide feedback with respect to that product, such as to providepositive and/or negative ratings with respect to the displayedrecommended product (e.g., a numerical rating, a star rating, athumbs-up/down rating, etc.), with such feedback being used in variousways in various embodiments, such as to reduce (if a negative rating)and/or increase (if a positive rating) the relevance scores for productsthat are determined to be similar to or otherwise related to the rateddisplayed recommended product. In addition, in some embodiments, theusers may interact with the displayed images in various other ways toobtain and/or view information related to recommended products, such asby “hovering” over a displayed image of a recommended product (e.g.,with a mouse pointer) to cause information related to a recommendedproduct associated with the displayed image to be provided to the user(e.g., price, description, sales information, availability, etc.). Instill other embodiments, functionality may be provided that allows theuser to interact with the GUI to initiate a purchase of a displayedrecommended item. In addition, in some embodiments, information may bedisplayed or otherwise provided to users to indicate why a particularitem is being recommended (e.g., this particular item is highly relevantfor being viewed by users who also viewed currently selected item 109,and is moderately relevant for being a top seller for an initiallyselected category of items).

While not illustrated here, it will be appreciated that a user maycontinue to interact with the display 200 in the manner previouslydiscussed with respect to FIGS. 2A-2D, such as to participate in muchlonger series of selections of recommended items, and to have much morethan 2 currently selected items of interest. In addition, in otherembodiments, multiple users (e.g., of a group) may interact with adisplay 200 or other GUI, whether simultaneously or consecutively, andwhether on one or more client devices, such as to display recommendeditems that are based on multiple currently selected items that have beenindicated by multiple users.

In addition, as discussed in greater detail elsewhere, various otherrecommendation strategies may be used in addition to and/or instead ofthe recommendation strategies discussed with respect to the examples ofFIGS. 2A-2D.

In addition, while not illustrated with respect to the examples of FIGS.2A-2D, in some embodiments multiple currently selected items (e.g.,multiple items displayed in the selected item area 205) may be relatedin manners other than being consecutively selected by a user asalternatives based on successive similarity to each other, andcorresponding recommended items (e.g., items displayed in therecommended item area 270) for the multiple currently selected items maybe determined by an embodiment of the MSPR service in various manners.For example, the multiple selected items may be selected as a collectionof items related to each other by being complementary or otherwisedesignated as possibly belonging together (e.g., an outfit that includespants, a shirt, and shoes that are intended to be worn together),whether based on a manual designation by one or more users or anautomated designation by the MSPR service or other automated system. Asone specific example, a user interacting with a GUI similar to thatdisplayed in FIGS. 2A-2D may individually select each of the items aspart of specifying a collection of multiple items of interest topossibly purchase together, or in other embodiments the user may beprovided with and select one of multiple recommended collections thateach includes a distinct combination of multiple related items (e.g.,distinct combinations of a shirt, pants, and shoes).

In such embodiments, the recommended items for a current collection ofmultiple selected items may be determined in various manners, such as toinclude other items that may be complementary to the current collectionof items (e.g., one or more belts and/or socks that are complementary toa current collection of a particular shirt, pants and shoes), and/or toinclude recommended items that are similar to or otherwise related toone or more of the selected items of the current collection. Forexample, the recommended items may include other pants related to thecurrently selected pants of the current collection (or other relateditems, such as skirts related to women's pants of the currentcollection), other shirts related to the currently selected shirt of thecurrent collection, and/or other shoes related to the currently selectedshoes of the current collection. Alternatively, the recommended itemsmay include, for example, other pants that are related to multiple orall of the currently selected pants, shirt and shoes of the currentcollection, and/or other types of items (e.g., other shirts, othershoes, etc.) that are related to multiple or all of the currentlyselected pants, shirt and shoes of the current collection. As discussedin greater detail elsewhere, such items that are related to other itemsmay be determined in various manners in various embodiments, such as bybeing similar to each other (e.g., with respect to one or more itemattributes); by users previously interacting with the related items insimilar manners (e.g., based on doing one or more of viewing,purchasing, searching for, browsing for, etc. for each of the relateditems), possibly at similar times (e.g., during a single interactionsession); by being designated by one or more users as being related;etc.

In such situations, the various types of determined recommended itemsmay be displayed in various manners and at various times, such assimultaneously in an interspersed manner (e.g., based on associatedrelevance scores with respect to all of the currently selected items ofthe collection, such as to first show a particular shirt that has thehighest aggregate relevance score with respect to the selected pants,shirt and shoes of the current collection, to next show particular shoesthat have the second highest aggregate relevance score with respect tothe selected pants, shirt and shoes of the current collection, etc.),may be displayed simultaneously but separately (e.g., with a first rowof a grid showing recommended pants, a second row of the grid showingrecommended shirts, etc.), may be displayed at different times (e.g., ifthe pants of the current collection is designated by the user, havingthe grid include recommended items corresponding to those pants, andhaving the grid change to show recommended items corresponding to theshirt of the current collection after the user designates that shirtrather than those pants), etc.

Furthermore, when the user selects a recommended item in suchsituations, the MSPR service may take various types of actions. Forexample, if the user selects a new complementary type of item (e.g., abelt), the new item may be added to the current collection of multipleselected items, such that the new current collection includes theselected pants, shirt, shoes and belt. Alternatively, if the userselects a new recommended item that is related to one of the currentlyselected items of the current collection (e.g., a new pair of pants orskirt that is recommended based on being related to the currentlyselected pants of the current collection), the new selected item mayinstead replace the previously selected item to which it relates in amodified version of the collection.

In addition, when the user selects a new recommended item for thecurrent collection, whether to replace a previously selected item of thecollection or to add to the current collection in addition to thepreviously selected items, a new group of recommended items isdetermined to reflect the new current collection of multiple items. Forexample, if new recommended pants are selected for the collection, thenew group of recommended items may, for example, replace previouslyrecommended pants and other related items (e.g., skirts) with newrecommended pants and/or other items that are similar to or otherwiserelated to the newly selected pants, but without modifying previouslyrecommended items of other types (e.g., shirts and shoes).Alternatively, if the various recommended items are determined based ontheir relationship to all of the multiple selected items of the currentcollection (e.g., if the recommended items are determined based on theirrelationship to not only the currently selected pants but also to thecurrently selected shirt and shoes of the current collection), the newgroup of recommended items after the selection of the new pants mayinstead be determined based on all of the items of the currentcollection. Such determination of the new group of recommended items mayinclude, for example, the following: removing the items and relevancescores that were previously determined based on the previously selectedpants that are no longer part of the new current collection; retainingthe other items that were previously recommended based on the previouslyselected items of the collection (e.g., the currently selected shirt andshoes), optionally without reducing any corresponding relevance scores;determining additional recommended items based on the newly selectedpants of the new current collection, along with corresponding relevancescores; and combining the retained items and retained relevance scoreswith the new additional recommended items and new relevance scores in amanner similar to that discussed elsewhere. It will be appreciated thatcollections of multiple items may be selected and that recommended itemsfor a current collection of multiple selected items may be determinedand displayed in other manners in other embodiments.

FIG. 3 is a block diagram illustrating an example embodiment of amulti-strategy product recommendation system for performing techniquesto dynamically generate product recommendations or other itemrecommendations for users. In particular, FIG. 3 illustrates a servercomputing system 300 suitable for executing an embodiment of aMulti-Strategy Product Recommendation (“MSPR”) system 340, as well asvarious user computing systems 350, other optional computing systems 360that optionally provide other services with which the MSPR systeminteracts, and other optional computing systems 380. In the illustratedembodiment, the server computing system 300 has components that includea CPU 305, various I/O components 310, storage 320, and memory 330. Theillustrated I/O components include a display 311, a network connection312, a computer-readable media drive 313, and other I/O devices 315(e.g., a keyboard, a mouse, speakers, etc.). In addition, theillustrated user computing systems 350 have components similar to thoseof server computing system 300, including a CPU 351, I/O components 352(although particular components are not illustrated), storage 354, andmemory 357. The other computing systems 360 and 380 may also eachinclude similar components to some or all of the components illustratedwith respect to computing system 300, but such components are notillustrated in this example for the sake of brevity.

An embodiment of the MSPR system 340 is executing in memory 330, such asunder control of configured CPU 305, and it may interact with computingsystems 350, 360 and 380 over the network 390 (e.g., via the Internetand/or the World Wide Web, via a private cellular network, etc.). Inthis example embodiment, the MSPR system 340 includes functionalityrelated to providing recommendations regarding products or other itemsto various users (not shown) who are interacting with user computingsystems 350, such as in conjunction with an MSPR service provided orotherwise managed by the MSPR system 340. The information from the MSPRsystem may in some embodiments and situations be provided directly tothe user computing systems 350, while in other embodiments theinformation may be provided indirectly by the MSPR system via one ormore other services (e.g., optional other services 335, optional otherservices 365, etc.) that interact directly with the users, such as ifthe other services are online retailers or other types of services andthe users are customers of the services.

The other computing systems 350, 360 and 380 may have various forms, andmay be executing various software as part of interactions with the MSPRsystem. For example, user computing systems 350 may include varioustypes of client devices (e.g., a desktop computing system, a portablecomputing system, a smartphone or other cell phone or other mobiledevice that includes appropriate communication and computingcapabilities, etc.), and in the illustrated embodiment are shownexecuting a Web browser 358 or other software (e.g., a module of theMSPR system that is designed to execute on a client device) in memory357 to interact with MSPR system 340. The Web browser 358 or othersoftware on a user computing system 350 may, for example, interact witha User Interaction (“UI”) Manager module 342 of the MSPR system toobtain information about recommended items in various ways, and maydisplay or otherwise present (e.g., via a GUI of the MSPR system that isdisplayed to the user via one or more Web pages or other UI screens onthe user computing system 350) some or all of that obtained informationto enable the user to interact with or otherwise use that information invarious manners (e.g., to obtain additional information about otherrecommended items that are progressively more relevant for the userbased on prior selections of the user of other less relevant items, toinitiate purchases or other acquisitions of particular items that aredetermined by the user to be of interest, etc.). In addition, one ormore users of the user computing systems 350 may interact with MSPRsystem 340 to perform various other types of actions, as discussed ingreater detail elsewhere.

In addition, as described in greater detail elsewhere, the MSPR system340 may in some embodiments be integrated with or otherwise associatedwith one or more other services (e.g., online retailers or otherretailers, item review services, databases or other services thatprovide information about items and/or about user interactions withitems, etc.), and if so may interact with those other services invarious manners. If so, one or more such other services may, forexample, execute on computing system 300 as other services 335 in memory330, and/or as one or more other services 365 that each execute on oneor more of the other remote service computing systems 360. Theinteractions with the other services may include, for example, some orall of the following non-exclusive list: obtaining information aboutproducts and other items available from those services or otherwiseabout which the service has access to information, such as optionalproduct information 367 on other service computing system 360; obtaininginformation about various types of prior interactions of customers andother users with the other services or otherwise about which the otherservices have access to information (e.g., to view information aboutitems; to purchase items; to provide other types of feedback aboutparticular items or relationships between items, such as that aparticular item is regarded in a particular positive or negative manner,or that two or more items are similar to each other or are otherwiserelated in one or more manners; etc.), such as optional user interactioninformation 369 on other service computing system 360; etc. The MSPRsystem may obtain such information in various manners, such as by theMSPR system pulling such information from one or more other servicesperiodically and/or on demand, by one or more other services pushingsuch information to the MSPR system periodically and/or as otherwisetriggered (e.g., as soon as the information is available, such as tomaintain a live feed so that the MSPR system has access to the mostup-to-date available information), etc. After such information isobtained by the MSPR system, the MSPR system may then store suchinformation for later use (e.g., in databases 322 and/or 324 on storage320, or on one or more remote other computing systems 380), or in otherembodiments may instead retrieve the information as needed and notmaintain a local copy of the information. Various other informationrelated to the operation of the MSPR system 340 may also be stored instorage 320 or elsewhere (e.g., information about users of the MSPRsystem, such as preference information; information about currentinteractions of users with the MSPR system, such as one or more relateditems that have been currently selected by the user as part of anongoing interactive recommendation exploration session; etc.), but isnot illustrated in this example.

After the MSPR system 340 receives requests (or other indications) toprovide product or other item recommendations for a particular user,such as from the user or from another service on behalf of the user, theRecommendation Manager module 344 of the system 340 may dynamicallydetermine recommendations for the user based on available information,such as the product information 322, user interaction information 324,any indications by the user of a subset of one or more items of initialinterest (e.g., a product category, a particular item, one or some orall of the search results for a search performed by the user, etc.), anycurrent selections by the user of one or more previously recommendeditems during an ongoing interactive recommendation exploration session,etc. In determining the recommendations, the module 344 may use variousrecommendation strategies in various manners, and may further determinerelevance information for some or all of the recommended items withrespect to the user or to any user (e.g., weighting information or otherindications of relevance levels for some or all of the recommendeditems, such as absolute relevance scores, relative indications of higheror lower relevance with respect to other recommended items, etc.), asdiscussed in greater detail elsewhere. In other embodiments andsituations, the Recommendation Manager module 344 may instead retrievestored recommendation information that was previously determined, suchas previously determined by the module 344 in a manner specific to theuser or instead for all users (e.g., recommended items for a particularproduct category, recommended items for a particular selected item,etc.), and may use that stored information as is or may modify it toreflect a current user or other current situation. The RecommendationManager module 344 may then use the determined recommendationinformation in various ways, such as by sending the information toanother service that requested it for use by that other service, sendingthe information to a particular client device of the user to initiate adynamic modification of other information previously displayed on theclient device to the user as part of an ongoing interactiverecommendation exploration session (e.g., to modify a displayed Web pagewithout the client device doing a reload of the page, such as based on apreviously sent and currently displayed version of the Web page that isbased on Ajax technology or that otherwise includes executableclient-side instructions that initiate or otherwise perform themodification), providing the information to the UI Manager module 342for use by the module 342 (e.g., if the module 344 dynamicallydetermined the information in response to a request from the module342), etc.

If the UI Manager module 342 requested the recommendation information,it may then incorporate some or all of the recommendation informationinto a form to be provided to a user for display or other presentation,such as in one or more Web pages to be displayed on a client device ofthe user. Furthermore, if the Recommendation Manager module 344determines weighting information or other relevance level indicationsfor some or all of the recommended items, the Recommendation Managermodule 344 and/or UI Manager module 342 may sort the recommended itemsbased at least in part on those relevance indications, such that therecommended items with the highest associated relevance indications maybe displayed first or otherwise more prominently than other recommendeditems with lower associated relevance indications. As discussed ingreater detail elsewhere, in some embodiments, if a current group of newitem recommendations is determined based at least in part on a userselection of one or more recommended items from a previously determinedgroup, the UI Manager module 342 may further in some such embodimentsincorporate newly included item recommendations together with some orall of the previous item recommendations, such that a Web page or otherinformation provided by the UI Manager module includes both new andprevious recommended items. In addition, when the new and previousrecommended items have associated relevance scores, those relevancescores may be used to combine the new and previous recommended items aspart of the new display in various manners, including by reducing therelevance scores previously associated with the previous recommendeditems (e.g., by a fixed amount, by a fixed percentage, etc.), and thensorting or otherwise managing the combination of the new and previousrecommended items by their associated relevance scores as discussedelsewhere. The UI Manager module 342 may then provide the informationfor presentation to the user, such as by sending one or more Web pagesto a client device of the user. In other embodiments and situations, theUI Manager module 342 may instead interact with one or more otherservices, such as if the information from the UI Manager module 342 isto be incorporated as part of a Web page or other UI screen provided bythe other service (e.g., within a particular pane of a larger page orscreen).

While not illustrated here, the MSPR system may further have othermodules or associated functionality in other embodiments, such as togenerate some or all of the user interaction information 324 (e.g.,based on monitoring users' interactions with retailers or otherservices; based on retrieving and processing information from retailersor other services related to such interactions, such as to identify datato be used with particular recommendation strategies and/or to identifyparticular recommendation strategies based on automatically learnedtypes of relationships between items; based on users' interactions withthe MSPR system to select particular items or otherwise provide feedbackspecific to particular items and/or to relationships between particularitems, such as based on series of selections of recommended items or inother manners; etc.), to generate some or all of the product information324, etc. Additional details related to various operations ofembodiments of the MSPR system and an associated MSPR service areincluded elsewhere.

It will be appreciated that computing systems 300, 350, 360 and 380 aremerely illustrative and are not intended to limit the scope of thepresent invention. The computing systems/devices may instead eachinclude multiple interacting computing systems or devices, and thecomputing systems/devices may be connected to other devices that are notillustrated, including through one or more networks such as theInternet, via the Web, or via private networks (e.g., mobilecommunication networks, etc.). More generally, a computing device orother computing system may comprise any combination of hardware orsoftware that may interact and perform the described types offunctionality, including without limitation, desktop or other computers,database servers, network storage devices and other network devices,PDAs, cellphones, wireless phones, pagers, electronic organizers,Internet appliances, television-based systems (e.g., using set-top boxesand/or personal/digital video recorders), and various other consumerproducts that include appropriate communication capabilities. Inaddition, the functionality provided by the illustrated MSPR system 340may in some embodiments be distributed in additional modules. Similarly,in some embodiments some of the functionality of the MSPR system 340 maynot be provided and/or other additional functionality may be available.

It will also be appreciated that, while various items are illustrated asbeing stored in memory or on storage while being used, these items orportions of them may be transferred between memory and other storagedevices for purposes of memory management and data integrity.Alternatively, in other embodiments some or all of the software modulesand/or systems may execute in memory on another device and communicatewith the illustrated computing systems via inter-computer communication.Furthermore, in some embodiments, some or all of the systems and/ormodules may be implemented or provided in other manners, such as atleast partially in firmware and/or hardware, including, but not limitedto, one or more application-specific integrated circuits (ASICs),standard integrated circuits, controllers (e.g., by executingappropriate instructions, and including microcontrollers and/or embeddedcontrollers), field-programmable gate arrays (FPGAs), complexprogrammable logic devices (CPLDs), etc. Some or all of the modules,systems and data structures may also be stored (e.g., as softwareinstructions or structured data) on a computer-readable medium, such asa hard disk, a memory, a network, or a portable media article to be readby an appropriate drive or via an appropriate connection. The systems,modules and data structures may also be transmitted as generated datasignals (e.g., as part of a carrier wave or other analog or digitalpropagated signal) on a variety of computer-readable transmissionmediums, including wireless-based and wired/cable-based mediums, and maytake a variety of forms (e.g., as part of a single or multiplexed analogsignal, or as multiple discrete digital packets or frames). Suchcomputer program products may also take other forms in otherembodiments. Accordingly, the present invention may be practiced withother computer system configurations.

FIG. 4 is a flow diagram of an example embodiment of a User InterfaceManager routine 400. The routine may, for example, be provided byexecution of an embodiment of the User Interface Manager module 342 ofFIG. 3 and/or otherwise as part of the MSPR service 105 of FIG. 1, suchas to facilitate providing a GUI for display on a client device of auser that includes selectable information about recommended itemsavailable from one or more retailers, and facilitate updating thedisplayed GUI with newly generated recommended items as the userinteracts with the displayed items. In addition, in some embodiments,portions of the routine may be executed by code executing in memory 357on one or more of the user computer systems 350 of FIG. 3, with partialresults being stored in the memory 357 and/or storage 354.

The illustrated embodiment of the routine begins in block 405, where theroutine provides one or more Web pages for display on a client device ofthe user, with the Web page(s) enabling the user to select a subset ofone or more of multiple items that are available from one or moreretailers. As discussed elsewhere, in other embodiments the provided GUImay use UI screens other than via Web pages, or the routine mayotherwise interact with users. In block 407, the routine receives anindication of a user selection or other interaction performed via theprovided Web page(s). In other embodiments, the user selection or otherinteraction may instead be obtained in other manners, such as by havinginformation about one or more items (e.g., a particular item, an itemcategory, etc.) encoded in a URL that is selected by the user from a Webpage that is not provided by the routine 400, or having such informationotherwise provided by the user. In the illustrated embodiment, theroutine then continues to block 410 to determine whether an indicationof an initial selection of a subset of one or more of the multiple itemshas been received. As discussed elsewhere, such an initial selection maybe based on, for example, an indication to browse a subset of themultiple items (e.g., by category, department), to search for an item(e.g., by name, type, description), to select a particular item, etc.If, in block 410, it is determined that an indication of an initialselection of such a subset was received, the routine proceeds to block415 to obtain an initial group of recommended items from the multipleitems available from the one or more retailers, based at least in parton the initial selection of the subset, such as by interacting with anembodiment of the Recommendation Manager routine 500 of FIGS. 5A-5B(described below) to request such an initial group along withinformation of the initial selection of the subset and to obtain theinitial group of recommended items in response to the request.

In block 420, the routine then optionally retrieves product informationassociated with the initial obtained group of recommended items, such asproduct information that may be provided for display to the user. Forexample, in some embodiments, such product information may includeimages and/or various details related to the items (e.g., name, price,description, availability, etc). In various embodiments, the productinformation may be retrieved in various ways from various sources, suchas directly from a retailer that provides the products (e.g., from a Website of a retailer, from an accessible database of product informationprovided by a retailer of the product, etc.), from a local storage ordatabase of such information, etc. In other embodiments, such productinformation may be included in the obtained group of recommended items,or may be obtained from other sources.

In block 425, the routine then generates a Web page for displaying theinitial group of recommended items to the user, optionally along withsome or all of the retrieved product information. In this illustratedembodiment, the Web page is generated to include instructions that, whenexecuted on a client device of the user, enable the user's device toretrieve and display a new group of recommended items to the user in thedisplayed Web page without causing the Web page to be completelyreloaded, such as in response to one or more user selections ofrecommended items. In addition, as discussed in greater detailelsewhere, the Web page may also be generated so as to display therecommended items in accordance with relevance levels associated withthe items, such as to display recommended items that have higherrelevance levels more prominently than recommended items that have lowerrelevance levels. In addition, the Web page may also in some embodimentsinclude functionality to enable a client to interactively initiate apurchase of a recommended item, to obtain additional information ordetails related to a recommended item, to indicate feedback regarding arecommended item, etc. In block 430, the generated Web page is thentransmitted or otherwise provided to the user's device for display tothe user. In other embodiments, rather than generate and transmit a Webpage in blocks 425 and 430, respectively, the routine may insteadtransmit information related to the initial group of recommended itemsfor display to the user (e.g., such as in another Web page and/or GUIexecuting on the user's device, or otherwise as discussed below withrespect to block 450).

If it is instead determined in block 410 that an indication of aninitial selection was not received, the routine continues to block 435to determine whether an indication of a selection of a previouslydisplayed recommended item is received. For example, such an indicationmay be received based upon execution of an instruction previouslyprovided with a Web page generated in block 425 that was initiated bythe user selecting the recommended item from the displayed Web page. Ifsuch an indication of an item selection is received, the routinecontinues to block 440 to obtain a new group of recommended items fromthe multiple items available from the one or more retailers, based atleast in part on the selection of the recommended item, such as byinteracting with an embodiment of the Recommendation Manager routine 500of FIGS. 5A-5B (described below). For example, the routine 400 mayrequest such a new group of recommended items, with the requestincluding information indicative of the selection, and obtain the newgroup of recommended items in response to the request. In block 445, theroutine then optionally retrieves product information associated withthe new group of recommended items, such as in a manner similar to thatof block 420. In block 450, the routine then transmits information aboutthe new group of recommended items for display on the user's device,such as to update the display of a previously provided Web page on theuser's device. In other embodiments, a new Web page or other UI screenmay instead be generated and sent to the user's client device fordisplay, such as in a manner similar to that of blocks 425 and 430.

If it is instead determined in block 435 that an indication of aselection of a previously displayed recommended item is not received,the routine continues instead to block 460 to optionally perform one ormore other indicated actions as appropriate. In various embodiments,such other actions may include, for example, determining and providingto the user a new group of recommended items based on aggregate behaviorof some or all customers of one or more retailers (e.g., top sellingproducts, hot products, etc.), determining and providing to the user anew group of recommended items based on a received indication of anothertype of user interaction (e.g., an item rejection, an item de-selection,a user-provided rating or other feedback, etc.); determining andproviding to the user additional information regarding a previouslydisplayed recommended item (e.g., product details), such as based on areceived indication of a user request for such additional information;initiating or otherwise facilitating a purchase of a recommended item,such as based on a received instruction from the user; etc.

After blocks 430, 450, and 460, the routine continues to block 465 tooptionally store information about the user selection or otherinteraction received in block 407. For example, in some embodiments,such information may be stored and included as part of information thatreflects prior interactions of multiple users with multiple items, suchas for later use in one or more product recommendation strategies. Inaddition, in some embodiments, such information may also or instead bestored in association with the user who performed the interactions, suchas for use in providing item recommendations to the particular user infuture sessions based at least in part on the user's personal previousinteractions (e.g., using such personal previous interactions todetermine preferences of the user).

After block 465, the routine continues to block 498 to determine whetherthe routine is to continue, such as until an explicit indication toterminate is received. If the routine determines to continue, theroutine returns to block 407 to await the next indication of userselection, and otherwise the routine ends in block 499. By returning toblock 407, the user may successively select displayed productrecommendations or otherwise interact with information about displayedproduct recommendations, such as part of an ongoing interactiverecommendation exploration session in which the user may make a seriesof multiple current product recommendation selections that each furtherrefine the relevance of the next group of recommended items for theuser.

FIGS. 5A-5B are a flow diagram of an example embodiment of aRecommendation Manager routine 500. The routine may, for example, beprovided by execution of the Recommendation Manager module 344 of FIG. 3and/or otherwise as part of the MSPR service 105 of FIG. 1, such as todetermine and provide item recommendations based on multiplerecommendation strategies and various current information. In addition,in some embodiments, portions of the routine may be executed by codeexecuting in memory 357 on one or more of the user computer systems 350of FIG. 3, with partial results being stored in the memory 357 and/orstorage 354. In this illustrated embodiment, the routine determines aninitial group of recommended items in a first manner, and determinessubsequent groups of recommended items in a second manner, but in otherembodiments may operate in other manners. For example, in otherembodiments, the routine may instead determine initial and subsequentgroups of recommended items in a single manner, such as to determine anew group of recommended items for each received indication of one ormore selected items.

The illustrated embodiment of the routine begins in block 505, where theroutine retrieves information reflecting previous interactions ofmultiple users with multiple items available from one or more retailers.In block 510, the routine then analyzes the retrieved information todetermine data for use in one or more of multiple recommendationstrategies, such as to identify popular items and/or variousrelationships between items and/or various relationships between usersand their patterns of interactions with items, etc. In some embodiments,such data may be stored in a database or other storage medium for lateruse in various recommendation strategies, and/or the routine in block510 may instead retrieve such previously generated and storedinformation rather than perform a current analysis.

In block 520, the routine then receives information and/or a request. Inthis illustrated embodiment, at least some requests may includeinformation related to user interactions (e.g., an indication of a userselection of one or more items, such as previously recommended items orother items) and/or other information that may be used as part ofdetermining items from multiple available items of one or more retailersto recommend to a user.

In block 525, the routine determines whether a request for a determinedgroup of item recommendations has been received, and if so continues toblock 530 to determine whether the request is for an initial group ofrecommended items, such as based on information received with therequest indicating an initial selection of a subset of one or more itemsof the multiple items. If so, the routine continues to block 535 todetermine an initial recommendation strategy to use for determining theinitial group of recommended items from the multiple items availablefrom the one or more retailers. In some embodiments, the initialrecommendation strategy may be predetermined (e.g., based at least inpart on the initial subset of one or more items), such as to use astrategy that recommends items that are currently popular (e.g., the top100 items purchased within the past month), or may instead bedynamically determined, such as based on which of multiple possiblestrategies currently provides the most results, etc. In addition, insome embodiments, one or more recommendation strategies may be more orless appropriate (or not appropriate at all) depending on the initialselection of the subset of one or more items, and in such embodiments,the initial recommendation strategy may be selected for use based onsuch considerations of appropriateness. In other embodiments, theinitial recommendation strategy may include multiple recommendationstrategies for use in determining an initial group of recommended items,such as is discussed with respect to blocks 565-575.

After an initial recommendation strategy is determined in block 535, theroutine continues to block 540 to determine an initial group ofrecommended items based on the determined initial recommendationstrategy and the initial selection of the subset of the one or moreitems, as well as the analyzed information reflecting the previousinteractions of multiple users with multiple items. In variousembodiments, various other types of information and/or indications maybe used to determine the initial group of recommended items, includinguser preferences. In block 545, the routine then optionally determinesrelevance levels for the recommended items in the determined group,although in other embodiments, such relevance levels may be determinedas part of determining the group of recommended items in block 540(e.g., some recommendation strategies may inherently include rankings orweightings which may be used as relevance levels), or instead may not beused. In block 550, the routine then provides information about thedetermined group of recommended items to the requestor.

If it is instead determined in block 530 that the request for adetermined group of recommended items is not based on an initialselection, the routine continues instead to block 560 to determinewhether the request for the determined group of recommended item isbased on the selection of a previously recommended item. If so, theroutine continues to block 565 to determine multiple recommendationstrategies to use in recommending additional items to the user. In block570, the routine determines, for each of at least some of the determinedmultiple recommendation strategies, a group of recommended items fromthe multiple items available from the one or more retailers, using theinitial selection of the subset of one or more items, the currentselected recommended item and optionally other recommended itemsselected as part of a current ongoing interaction session, and theanalyzed information that reflects previous interactions of multipleusers. In some embodiments, as part of the determining for a particularrecommendation strategy, the various recommended items in the group forthat strategy may be given a corresponding relevance level, such as aranking, weighting, or other score.

In block 575, a new group of recommended items is determined byaggregating recommended items of the groups determined in block 570, andoptionally the recommended items of one or more previously determinedgroups as well. The previously determined groups may include, forexample, an initial group determined in block 540 and/or other groupspreviously determined in block 575. As described elsewhere, the resultsof multiple recommendation strategies may be combined in various ways invarious embodiments to form a new group of recommended items, such as toinclude all of the items from the various groups determined in block570, to include a subset of the items from the various groups determinedin block 570, etc. The routine then continues to block 545, andoptionally determines relevance levels for each of the recommended itemsin the determined group (e.g., by aggregating relevance levelsdetermined for particular items by particular recommendation strategiesin block 570), and continues to block 550.

If it is instead determined in block 560 that the request received inblock 520 is not related to a selected recommended item, the routinecontinues to block 580 to optionally determine a new group ofrecommended items based on other indicated information. For example, invarious embodiments, the routine may determine a new group ofrecommended items based on an indication that a user has removed orde-selected a previously selected item, based on an indication of userfeedback with respect to one or more items, etc. After block 580, theroutine continues to block 545 to optionally determine relevance levelsfor the recommended items in such a new group, and then to block 550.

If it is instead determined in block 525 that a request for a determinedgroup of item recommendations has not been received, the routinecontinues instead to block 595 to optionally perform one or more otheractions as appropriate. For example, in some embodiments, such otheractions may include updating the information reflecting previousinteractions of multiple users with multiple items and performing theanalysis of such updated information (e.g., as described respectivelywith respect to blocks 505 and 510), providing information aboutpreviously determined recommended items, etc.

After blocks 550 and 595, the routine continues to block 598 todetermine whether to continue, such as until an explicit indication toterminate is received. If the routine determines to continue, theroutine returns to block 520 to wait for a next request or informationsubmission, and otherwise the routine ends in block 599.

FIG. 6 is a flow diagram of an example embodiment of a Client DeviceDisplay routine 600. The routine may, for example, be provided as partof an application executing on a client computing system or device of auser 140 of FIG. 1 and/or by execution of the browser or other software358 of FIG. 3.

The illustrated embodiment of the routine begins in block 610, where inresponse to a user instruction or other indication, the routineretrieves a Web page provided as part of a GUI of an embodiment of theMSRP service, such as by interacting with an embodiment of the UserInterface Manager routine 400 of FIG. 4. The indication to retrieve theWeb page may be, for example, the result of a user navigating to a Website of the MSRP service or of a retailer that the MSRP service supports(e.g., by entering or selecting a corresponding URL), the result of anautomatically generated indication to retrieve such a Web page on behalfof the user, etc. In block 615, the routine then displays the retrievedWeb page to the user. Such a display may include one or moreuser-selectable controls that allow the user to select or otherwiseindicate one or more items available from one or more retailers, such asdescribed elsewhere.

In block 620, the routine receives an indication of a user interactionwith the displayed Web page. The routine continues to block 625 todetermine whether the received user interaction is an initial selectionof a subset of one or more items, and if so continues to block 630 tosend an indication of the initial selection to an embodiment of the MSPRservice (e.g., to the User Interface Manager routine 400 of FIG. 4) toobtain an initial group of recommended items that may be determinedbased at least in part on the initial selection of the subset. In block635, the routine receives a corresponding Web page for displaying theinitial group of recommended items determined by the MSPR service, andin block 640 displays the Web page. The received Web page may includeinstructions for retrieving and displaying an additional group ofrecommended items, such as in response to a selection of an initiallydisplayed recommended item by the user, without causing the entirereceived Web page to be reloaded. The display of the Web page may, forexample, display the recommended items in such a manner that items withhigher associated relevance levels are displayed more prominently thanitems with lower associated relevance levels, such as describedelsewhere. In some embodiments, the displayed Web page may also includefunctionality that allows the user to perform other actions, such as toinitiate a purchase of a recommended item, view details or otherinformation associated with a recommended item, indicate feedbackrelated to an item, etc.

If it is instead determined in block 625 that the user interaction isnot an initial selection of a subset of one or more items, the routinecontinues to block 645 to determine whether the user interaction is aselection of a previously displayed recommended item, such as arecommended item displayed in an initial group in block 635 and/or inanother previously displayed group of recommended items. If so, theroutine continues to block 650, and sends an indication of the selectedrecommended item to the MSPR service in order to obtain a new group ofrecommended items, such as may be determined based at least in part onthe selected recommended item. For example, in this illustratedembodiment, the routine may send the indication to an embodiment of theUser Interface Manager routine 400 of FIG. 4. In block 655, the routinereceives information of a new group of recommended items, and in block660 uses the information of the new group to modify the displayed Webpage to include recommended items from the new group without reloadingthe entire Web page, such as in accordance with instructions included inthe previously displayed Web page.

If it was instead determined in block 645 that the user interaction isnot a selection of a recommended item, the routine instead continues toblock 665 to optionally perform one or more other actions asappropriate. For example, in various embodiments, such actions mayinclude initiating a purchase of a displayed recommended item; obtaininginformation or other details related to a displayed recommended item;facilitating removal or de-selection of previously selected items;obtaining various types of user-provided feedback, etc., and at leastsome such actions may cause a new group of recommended items to beobtained from the MSPR service and displayed in a manner similar toblocks 650-660 and/or cause a currently displayed group of recommendeditems to be otherwise modified or updated in various ways (e.g., addingor removing items, reordering displayed items); etc.

After blocks 640, 660 and 665, the routine continues to block 698 todetermine whether to continue, such as until an explicit indication toterminate is received. If the routine determines to continue, theroutine returns to block 620 to receive an additional user interactionwith respect to the currently displayed Web page, and otherwise theroutine ends in block 699.

Those skilled in the art will also appreciate that in some embodimentsthe functionality provided by the routines discussed above may beprovided in alternative ways, such as being split among more routines orconsolidated into fewer routines. Similarly, in some embodimentsillustrated routines may provide more or less functionality than isdescribed, such as when other illustrated routines instead lack orinclude such functionality respectively, or when the amount offunctionality that is provided is altered. In addition, while variousoperations may be illustrated as being performed in a particular manner(e.g., in serial or in parallel, or synchronous or asynchronous) and/orin a particular order, those skilled in the art will appreciate that inother embodiments the operations may be performed in other orders and inother manners. Those skilled in the art will also appreciate that thedata structures discussed above may be structured in different manners,such as by having a single data structure split into multiple datastructures or by having multiple data structures consolidated into asingle data structure. Similarly, in some embodiments illustrated datastructures may store more or less information than is described, such aswhen other illustrated data structures instead lack or include suchinformation respectively, or when the amount or types of informationthat is stored is altered.

From the foregoing it will be appreciated that, although specificembodiments have been described herein for purposes of illustration,various modifications may be made without deviating from the spirit andscope of the invention. Accordingly, the invention is not limited exceptas by the appended claims and the elements recited therein. In addition,while certain aspects have been discussed in specific terms such as tobe described as processes and/or systems and/or are presented below incertain claim forms, the inventors contemplate the various aspects ofthe invention in any available claim form, including methods, systems,computer-readable mediums on which are stored executable instructions orother contents to cause a method to be performed and/or on which arestored one or more data structures, computer-readable generated datasignals transmitted over a transmission medium and on which suchexecutable instructions and/or data structures have been encoded, etc.

1-40. (canceled)
 41. A configured computing system comprising: one ormore processors; and a product recommendation system that is configuredto, when executed by at least one of the one or more processors, providerecommendations to multiple users by, for each of the users: obtaininginformation that reflects prior interactions of a plurality of consumerswith a plurality of products; receiving additional information about acurrent situation involving the user interacting with one or more firstproducts available from a retailer; automatically determining one ormore products of the plurality of products to recommend to the user inthe current situation based on multiple distinct recommendationstrategies, the determining including se one of the multiplerecommendation strategies to use for the current situation, and furtherincluding selecting determined one or more products from productrecommendations generated by the selected one recommendation strategy,the product recommendations being generated by the selected onerecommendation strategy using information about the one or more firstproducts and using the information about the prior interactions of theplurality of consumers with the plurality of products; and providinginformation about the determined one or more products for use as part ofa Web page from the retailer for display to the user.
 42. The computingsystem of claim 41 wherein the providing of the recommendations to themultiple users further includes, for one of the multiple users, andafter the providing of the information about the determined one or moreproducts for use as part of the Web page from the retailer for displayto the one user: receiving an indication of a selection of at least oneof e determined one or more products by the one user via the Web pagedetermining a group of multiple additional products of the plurality ofproducts to recommend to the one user using a combination of themultiple recommendation strategies, the determined group of multipleadditional products being based at least in part on the selected atleast one product; and providing further information about the multipleadditional products of the determined group for use as part of anupdated Web page for display to the one user on a client device of theone user.
 43. The computing system of claim 42 further comprising theclient device of the one user, the one-client device being configured toreceive the Web page for display to the one user, to display the Webpage to the one user such that the determined one or more products aredisplayed as part of the Web page, to receive the selection of the atleast one product by the one user via the Web page, to send theindication of the selection to the product recommendation system, toreceive the provided further information about the multiple additionalproducts of the determined group, and to dynamically modify thedisplayed Web page, without reloading the displayed Web page, to includeinformation about the multiple additional products of the determinedgroup.
 44. The computing system of claim 41 wherein the providing of therecommendations to the multiple users further includes, for one of themultiple users, after the providing of the information about thedetermined one or more products for display to the one user, initiatingan order from the retailers for the one user of one of the determinedone or more products after the one user selects that one product forpurchase via one or more interactions with the Web page displayed to theuser.
 45. The computing system of claim 41 wherein the productrecommendation system includes software instructions for execution bythe at least processors of the computing system.
 46. The computingsystem of claim 41 wherein the product recommendation system consists ofone or more means for performing the providing of the recommendations tothe multiple users.
 47. The computing system of claim 41 wherein, foreach of one or more of the multiple users, the selecting of the onerecommendation strategy to use for the current situation includes: foreach of the multiple recommendation strategies, generating at least oneproduct recommendation for the current situation based on the one ormore first products and on the information about the prior interactionsof the plurality of users with the plurality of products; andidentifying the selected one recommendation strategy based at least inpart on comparing information about the generated at least one productrecommendation for each of the multiple recommendation strategies. 48.The computing system of claim 41 wherein, for a first user of themultiple users, the selected one recommendation strategy to use for thecurrent situation involving the first user is a first strategy of themultiple recommendation strategies, and for a distinct second user ofthe multiple users, the selected one recommendation strategy to use forthe current situation involving the second user is a second strategy ofthe multiple recommendation strategies that is distinct from the firststrategy.
 49. A computer-implemented method comprising: obtaining, byone or more configured computing systems, information that reflectsprior interactions of a plurality of users with a plurality of products;receiving, by the one or more configured computing systems, informationabout a situation involving a first user and one or more first products;determining, by the one or more configured computing systems, one ormore products of the plurality of products to recommend to the firstuser based on multiple distinct recommendation strategies, thedetermining including selecting one of the multiple recommendationstrategies to use for the situation, and further including selecting thedetermined one or more products from product recommendations generatedby the selected one recommendation strategy, the product recommendationsbeing generated by the selected one recommendation strategy usinginformation about the one or more first products and using theinformation about the prior interactions of the plurality of users withthe plurality of products; and providing information about thedetermined one or more products for presentation to the first user. 50.The method of claim 49 wherein the selecting of the one recommendationstrategy to use for the situation includes: for each of the multiplerecommendation strategies, generating at least one productrecommendation for the situation based on at least one of the one ormore first products and of the information about the prior interactionsof the plurality of users with the plurality of products; andidentifying the selected one recommendation strategy based at least inpart on comparing information about the generated at least one productrecommendation for each of the multiple recommendation strategies. 51.The method of claim 49 wherein the selecting of the one recommendationstrategy to use for the situation includes identifying the onerecommendation strategy as being predetermined for use with the one ormore first products.
 52. The method of claim 49 wherein the selected onerecommendation strategy generates the product recommendations from asubset of the plurality of products that are identified as popular basedat least in part on the prior interactions of the plurality of userswith the plurality of products.
 53. The method of claim 49 wherein theselected one recommendation strategy to use for the situation involvingthe first user is a first strategy of the multiple recommendationstrategies, and wherein the method further comprises determining, by theone or more configured computing systems, one or more second products ofthe plurality of products to recommend to a second user based onselecting a second strategy of the multiple recommendation strategiesthat is distinct from the first strategy and based on selecting thedetermined one or more second products from product recommendationsgenerated by the second strategy.
 54. The method of claim 49 whereingenerating of the product recommendations by the selected onerecommendation strategy further uses information specific to the firstuser.
 55. The method of claim 49 wherein generating of the productrecommendations by the selected one recommendation strategy is furtherbased at least in part on feedback from the first user related to atleast one product.
 56. The method of claim 49 wherein the providedinformation about the determined one or more products is for use as partof a Web page for display to the first user on a client device of thefirst user, and wherein the method further comprises, after theproviding of the information about the determined one or more products:receiving an indication of a selection of at least one of the determinedone or more products by the first user via the Web page; determining agroup of multiple additional products of the plurality of products torecommend to the first user using a combination of the multiplerecommendation strategies, the determined group of multiple additionalproducts being based at least in part on the selected at least oneproduct; and providing further information about the multiple additionalproducts of the determined group for display to the first user on theclient device of the first user.
 57. The method of claim 49 wherein themultiple recommendation strategies are each one of identifying productsthat are popular for a particular category of products, of identifyingproducts that are popular for a particular retailer of products, ofidentifying products that are similar to the one or more first products,of identifying products that are related to the one or more firstproducts based at least in part on the prior interactions of theplurality of users, and of identifying products with which one or moreusers have indicated to group the one or more first products.
 58. Themethod of claim 49 wherein the multiple recommendation strategiesinclude each of identifying products that are popular for a particularcategory of products to which the one or more first products belong, ofidentifying products that are popular for a particular retailer ofproducts, of identifying products that are similar to the one or morefirst products based at least in part on those identified products eachsharing one or more attributes with the one or more first products, ofidentifying products that are related to the one or more first productsbased at least in part on users who interact with the one or more firstproducts in one or more manners also interacting with those identifiedproducts in the one or more manners, and of identifying products withwhich one or more users have indicated to group the one or more firstproducts.
 59. The method of claim 49 wherein the one or more firstproducts correspond to one of multiple product categories, and whereinthe selected one recommendation strategy includes at least one ofselecting products that are frequently purchased from the one productcategory and of selecting products that are frequently viewed from theone product category.
 60. The method of claim 49 wherein the one or morefirst products correspond to at least one of multiple search results ofa search initiated by the first user, and wherein the selected onerecommendation strategy includes at least one of selecting products thatare similar to the one of more first products and of selecting productsthat are related to the one or more first products in the priorinteractions of the plurality of users.
 61. The method of claim 49wherein the one or more first products are indicated by the first user,and wherein the selected one recommendation strategy includes at leastone of selecting products that are similar to the one or more firstproducts and of selecting products that are related to the one or morefirst products in the prior interactions of the plurality of users. 62.The method of claim 49 wherein the plurality of users are customers ofan online retailer, wherein the information that reflects the priorinteractions of the plurality of users with the plurality of products isobtained based at least in part on tracking interactions of theplurality of customers with the online retailer, wherein the one or moreconfigured computing systems provide a multi-strategy productrecommendation service that determines product recommendations formultiple customer users of the online retailer, and wherein the methodfurther comprises automatically initiating an order from the onlineretailer for the first user of one of the determined one or moreproducts after the first user selects that one determined product forpurchase via one or more interactions with the provided informationabout the determined one or more products.
 63. A non-transitorycomputer-readable medium having stored contents that configure acomputing device to perform a method, the method comprising: obtaining,by the configured computing device, information that reflects priorinteractions of a plurality of users with a plurality of items;receiving, by the configured computing device, information about a firstuser and one or more first items; determining, by the configuredcomputing device, one or more items of the plurality of items torecommend to the first user based on multiple distinct recommendationstrategies, the determining including selecting one of the multiplerecommendation strategies to use and further including selecting thedetermined one or more items from item recommendations generated by theselected one recommendation strategy, the item recommendations beinggenerated by the selected one recommendation strategy using theinformation about the prior interactions of the plurality of users withthe plurality of items; and providing information about the determinedone or more items for presentation to the first user.
 64. Thenon-transitory computer-readable medium of claim 63 wherein the one ormore first items are products, and wherein generating of the itemrecommendations by the selected one recommendation strategy further usesinformation about the one or more first items.
 65. The non-transitorycomputer-readable medium of claim 63 wherein generating of the itemrecommendations by the selected one recommendation strategy further usesinformation about the first user.
 66. The non-transitorycomputer-readable medium of claim 63 wherein the selecting of the onerecommendation strategy to use includes: for each of the multiplerecommendation strategies, generating at least one item recommendationbased on at least one of the one or more first items and of theinformation about the prior interactions of the plurality of users withthe plurality of items; and identifying the selected one recommendationstrategy based at least in part on comparing information about thegenerated at least one item recommendation for each of the multiplerecommendation strategies.
 67. The non-transitory computer-readablemedium of claim 63 wherein the multiple recommendation strategies areeach one of identifying items that are popular for a particular categoryof items, of identifying items that are popular for a particularretailer, of identifying items that are similar to the one or more firstitems, of identifying items that are related to the one or more firstitems based at least in part on the prior interactions of the pluralityof users, and of identifying items with which one or more users haveindicated to group the one or more first items.
 68. The non-transitorycomputer-readable medium of claim 63 wherein the multiple recommendationstrategies include each of identifying items that are popular for aparticular category of items to which the one or more first itemsbelong, of identifying items that are popular for a particular retailer,of identifying items that are similar to the one or more first itemsbased at least in part on those identified items each sharing one ormore attributes with the one or more first items, of identifying itemsthat are related to the one or more first items based at least in parton users who interact with the one or more first items in one or moremanners also interacting with those identified items in the one or moremanners, and of identifying items with which one or more users haveindicated to group the one or more first items.
 69. The non-transitorycomputer-readable medium of claim 63 wherein the plurality of users arecustomers of an online retailer, wherein the information that reflectsthe prior interactions of the plurality of users with the plurality ofproducts is obtained based at least in part on tracking interactions ofthe plurality of customers with the online retailer, and wherein theconfigured computing device is part of a multi-strategy productrecommendation service that determines item recommendations for multiplecustomer users of the online retailer.
 70. The non-transitorycomputer-readable medium of claim 63 wherein the computer-readablemedium is a memory of the configured computing device, and wherein thestored contents are software instructions that, when executed, programthe configured computing device to perform the method.